Values X Country

Column

Final Version

Column

Initial version

This is the first version of the plot. There is a lot to work on here. Both axes and legend labels seem confusing. X-axis scale is also not complete.

Revised version

Values X Country X Sex

Column

Final Version

Column

Initial version

Revised version

Predictors of values

Column

Final Version

Column

Initial version

Revised version

Predictors of values for each country

Column

Final Version

Column

Initial version

Revised version

Bonus plots

Column

Final Version

Column

Initial version

Revised version

---
title: "Moral Values Across Countries"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    source_code: embed
---

```{r setup, include=FALSE}
# global options
knitr::opts_chunk$set(echo = FALSE,
                      tidy = TRUE,
                      cache = FALSE,
                      message = FALSE, 
                      error = FALSE, 
                      warning = FALSE)

# packages
library(flexdashboard)
library(here)
library(rio)
library(tidyverse)
library(magrittr)
library(lme4)
library(lmerTest)
library(colorBlindness)
library(dotwhisker)


theme_set(theme_minimal(base_size = 15)) # set theme
options(scipen=999) # remove scientific notation
```

```{r wrangling, include = FALSE}
# import data
df <- import(here("data", "ALL_MFQ30.csv"),     # moral values, countries, & sex
             setclass = "tbl_df") %>% 
  janitor::clean_names()

df_c <- import(here("data", "Data_S1_sec.csv"), # country-level variables
               setclass = "tbl_df") %>% 
  janitor::clean_names()

# data wrangling
df %<>% 
  drop_na() %>%                             
  mutate(
    across(where(is.double), as.numeric),   
    across(where(is.character), as.factor), 
    
    sex = recode(sex,                       
                 `1` = "Male",
                 `0` = "Female",
                 .default = NA_character_),
    
    indiv = rowMeans(                
      select(., harm_avg, fairness_avg) # individualizing moral foundations
    ),
    
    bind = rowMeans(                 
      select(., ingroup_avg:purity_avg) # binding moral foundations
    )
  )

# check data structure and variables
str(df)

# descriptive statistics by country
c_desc <- 
df %>% 
  pivot_longer(cols = c(indiv, bind),
               names_to = "vars",
               values_to = "val"
               ) %>% 
  select(country, vars, val) %>% 
  group_by(country, vars) %>% 
  summarise(mean = mean(val, na.rm = TRUE),
            sd = sd(val, na.rm = TRUE),
            min = min(val, na.rm = TRUE),
            max = max(val, na.rm = TRUE),
            .groups = "drop"
            ) %>% 
  mutate(vars = fct_recode(vars,
                           Individualizing = "indiv",
                           Binding = "bind"
                           )
         )

# descriptive statistics by country and sex
c_s_desc <- 
df %>% 
  filter(country != "Poland") %>%            # Poland has missing data in sex.
  pivot_longer(cols = c(indiv, bind),
               names_to = "vars",
               values_to = "val"
               ) %>% 
  group_by(country, sex, vars) %>% 
  summarise(mean = mean(val, na.rm = TRUE),
            sd = sd(val, na.rm = TRUE),
            min = min(val, na.rm = TRUE),
            max = max(val, na.rm = TRUE),
            .groups = "drop"
            ) %>% 
  mutate(vars = fct_recode(vars,
                           Individualizing = "indiv",
                           Binding = "bind"
                           )
         )
```


# Values X Country

Sidebar {.sidebar}
-----------------------------------------------------------------------
**Data**  
Data used in this dashboard come from the second study of XX. It's a publicly available dataset, which can be downloaded from XX.

19 countries.

**Summary of the Visualizations**

The first set of plots (on this page) represents the average scores for individualizing and binding foundations across countries. Building on this plot, I next add the sex variable into the mix.  

The second set of plots visualize the effect of sex and several country-level variables on the aforementioned foundations.  

*Country-level variables*  
a  
a  
a  
a  
a  
a  

Column {data-width=600}
-----------------------------------------------------------------------

### Final Version

```{r}

```

Column {data-width=400}
-----------------------------------------------------------------------

### Initial version

```{r}
c_desc %>% 
  ggplot() + 
  geom_col(
    aes(mean, country, fill = vars),
    position = "dodge"
  ) +
  theme(
    panel.grid.major.y = element_blank(),
    panel.grid.minor.y = element_blank()
  ) + 
  scale_x_continuous(expand = c(0, 0))
```

> This is the first version of the plot. There is a lot to work on here. Both axes and legend labels seem confusing. X-axis scale is also not complete.

### Revised version

```{r}

```


# Values X Country X Sex

Column {data-width=600}
-----------------------------------------------------------------------

### Final Version

```{r}

```

Column {data-width=400}
-----------------------------------------------------------------------

### Initial version

```{r}

```

### Revised version

```{r}

```


# Predictors of values
Sidebar {.sidebar}
-----------------------------------------------------------------------


Column {data-width=600}
-----------------------------------------------------------------------

### Final Version

```{r}

```

Column {data-width=400}
-----------------------------------------------------------------------

### Initial version

```{r}

```

### Revised version

```{r}

```


# Predictors of values for each country

Column {data-width=600}
-----------------------------------------------------------------------

### Final Version

```{r}

```

Column {data-width=400}
-----------------------------------------------------------------------

### Initial version

```{r}

```

### Revised version

```{r}

```


# Bonus plots
Sidebar {.sidebar}
-----------------------------------------------------------------------

Column {data-width=600}
-----------------------------------------------------------------------

### Final Version

```{r}

```

Column {data-width=400}
-----------------------------------------------------------------------

### Initial version

```{r}

```

### Revised version

```{r}

```